home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
ada
/
gnat1792.zip
/
gnat179b
/
t-adainc
/
s-tasren.ads
< prev
next >
Wrap
Text File
|
1994-05-19
|
5KB
|
116 lines
------------------------------------------------------------------------------
-- --
-- GNU ADA RUNTIME LIBRARY (GNARL) COMPONENTS --
-- --
-- S Y S T E M . T A S K I N G . R E N D E Z V O U S --
-- --
-- S p e c --
-- --
-- $Revision: 1.7 $ --
-- --
-- Copyright (c) 1991,1992,1993, FSU, All Rights Reserved --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU Library General Public License as published by the --
-- Free Software Foundation; either version 2, or (at your option) any --
-- later version. GNARL is distributed in the hope that it will be use- --
-- ful, but but WITHOUT ANY WARRANTY; without even the implied warranty of --
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Gen- --
-- eral Library Public License for more details. You should have received --
-- a copy of the GNU Library General Public License along with GNARL; see --
-- file COPYING. If not, write to the Free Software Foundation, 675 Mass --
-- Ave, Cambridge, MA 02139, USA. --
-- --
------------------------------------------------------------------------------
package System.Tasking.Rendezvous is
-- This interface is described in the document
-- Gnu Ada Runtime Library Interface (GNARLI).
procedure Task_Entry_Call
(Acceptor : Task_ID;
E : Task_Entry_Index;
Uninterpreted_Data : System.Address;
Mode : Call_Modes;
Rendezvous_Successful : out Boolean);
-- General entry call
procedure Call_Simple
(Acceptor : Task_ID;
E : Task_Entry_Index;
Uninterpreted_Data : System.Address);
-- Simple entry call
procedure Cancel_Task_Entry_Call (Cancelled : out Boolean);
-- Cancel pending task entry call
procedure Requeue_Task_Entry
(Acceptor : Task_ID;
E : Task_Entry_Index;
With_Abort : Boolean);
procedure Requeue_Protected_To_Task_Entry
(Object : Protection_Access;
Acceptor : Task_ID;
E : Task_Entry_Index;
With_Abort : Boolean);
procedure Selective_Wait
(Open_Accepts : Accept_List_Access;
Select_Mode : Select_Modes;
Uninterpreted_Data : out System.Address;
Index : out Select_Index);
-- Selective wait
procedure Accept_Call
(E : Task_Entry_Index;
Uninterpreted_Data : out System.Address);
-- Accept an entry call
procedure Accept_Trivial (E : Task_Entry_Index);
-- Accept an entry call that has no parameters and no body
function Task_Count (E : Task_Entry_Index) return Natural;
-- Return number of tasks waiting on the entry E (of current task)
function Callable (T : Task_ID) return Boolean;
-- Return T'CALLABLE
procedure Complete_Rendezvous;
-- Called by acceptor to wake up caller
procedure Exceptional_Complete_Rendezvous (Ex : Exception_ID);
-- Called by acceptor to mark the end of the current rendezvous and
-- propagate an exception to the caller.
--------------------------------
-- RTS Internal Declarations --
--------------------------------
-- These declarations are not part of the GNARLI
procedure Close_Entries (Target : Task_ID);
-- Close entries, purge entry queues (called by Task_Stages.Complete)
-- T.Stage must be Completing before this is called.
procedure Complete_on_Sync_Point (T : Task_ID);
-- If a task is suspended on an accept, select, or entry call
-- (but not yet *in* rendezvous) then complete the task.
procedure Reset_Priority
(Acceptor_Prev_Priority : Rendezvous_Priority;
Acceptor : Task_ID);
pragma Inline (Reset_Priority);
-- Reset priority to original value (not part of the CARTS interface)
procedure Terminate_Alternative;
-- Called when terminate alternative is selected.
-- Waits for dependents to either terminate
-- or also select a terminate alternative.
-- Assumes that abortion is deferred when called.
procedure Complete (Target : Task_ID);
-- Complete task and act on pending abortion.
end System.Tasking.Rendezvous;